package com.javaweb.httpservlet3;

import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

public class AServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException{
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        //获取系统当前时间
        Date nowTime = new Date();

        //向request域中绑定数据
        request.setAttribute("sysTime",nowTime);

        //ServletContext context = this.getServletContext();
        //String res = "asdgfg";
        //context.setAttribute("s",res);

        // 从request域当中取出绑定的数据
        //Object obj = request.getAttribute("sysTime");

        //输出到浏览器
        //out.print("request域当中获取的系统当前时间 = " + obj);

        // 这样做可以吗？exploded
        // 在AServlet当中new一个BServlet对象，然后调用BServlet对象的doGet方法，把request对象传回去。
        // 这个代码虽然可以实现功能，但是Servlet对象不能自己由程序员来new,自己new的Servlet对生命周期不受Tomcat服务器的管理。

        //通过AServlet能不能跳转到BServlet
        // 让AServlet和BServlet放到一次请求当中
        // 可以的。使用Servlet当中请求转发机制。
        //执行了AServlet之后，跳转到BServlet，（这个资源跳转可以使用跳转机制来完成）

        //RequestDispatcher	getRequestDispatcher​(java.lang.String path) dispatcher：调度程序
        //RequestDispatcher dispacher = request.getRequestDispatcher("/bservlet");

        //第二步：调用请求转发器RequestDispatcher的forward的方法，进行转发
        // 转发的时候，这两个参数很重要,request和response都是要传递给这个资源的。
        //dispacher.forward(request,response);

        request.getRequestDispatcher("/bservlet").forward(request,response);




    }
}
